<?php
define('DIR_ROOT', dirname(__FILE__));

require_once DIR_ROOT . '/lib/nusoap-0.9.5/lib/nusoap.php';
$ns = (!empty($_SERVER['HTTPS'])) ? "https://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] : "http://".$_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME']; // namespace
$soap_server = new soap_server();
$soap_server->configureWSDL('CertiCamara', $ns);
$soap_server->wsdl->schemaTargetNamespace = $ns;
$soap_server->wsdl->addComplexType('habilidades',
  'complexType',
  'array',
  'all',
  '',
  array(
  'habilidad' => array(
      'name' => 'nombre',
      'type' => 'xsd:string',
      'minOccurs' => '0',
      'maxOccurs' => '100'
      )
  )
);
$soap_server->register('registrarUsuarioService',
        array(
            'nombres' => 'xsd:string',
            'email' => 'xsd:string',
            'fecha_nacimiento' => 'xsd:string',
            'habilidades' => 'xsd:habilidades'),
        array('return' => 'xsd:string'),
        $ns);
$soap_server->register('buscarUsuarioService',
        array('email' => 'xsd:string'),
        array('return' => 'xsd:string'),
        $ns);

function registrarUsuarioService($nombres, $email, $fecha_nacimiento, $habilidades) {
  
  return new soapval('return', 'xsd:string', implode('-', $habilidades));
  
  require_once DIR_ROOT . '/lib/model/Usuario.class.php';
  
  $usuario = new Usuario();
  $usuario->setNombres($nombres)
          ->setEmail($email)
          ->setFechaNacimiento($fecha_nacimiento);
//          ->setHabilidades($habilidades);
  
  foreach ($habilidades as $habilidad)
    $usuario->addHabilidad($habilidad);
    
  if ($usuario->isValid() === true) {
    $flag = $usuario->buildPdf();
    return new soapval('return', 'xsd:string', $flag ? 'El usuario se ha registrado con exito' : 'No se ha podido registrar');
  } else {
    return new soapval('return', 'xsd:string', $usuario->isValid());
  }

}

function buscarUsuarioService($email) {
  $filename = DIR_ROOT . '/pdf/' . $email .'.pdf';
  if (file_exists($filename))
    $pdf = file_get_contents ($filename);
  else
    return new soapval('return', 'xsd:string', "Usuario no encontrado");
  return new soapval('return', 'xsd:string', base64_encode($pdf));
}

if ( !isset( $HTTP_RAW_POST_DATA ) )
  $HTTP_RAW_POST_DATA = file_get_contents( 'php://input' );

$soap_server->service($HTTP_RAW_POST_DATA);
